Terminal Services provides for a desktop remoting experience where a client such as a thin-client, or a rich client can connect remotely over a network to another computer, which functions as a server computer to achieve a remote desktop experience. In this scenario, the applications run on the server, remoting just their ‘output’ (i.e. graphics or user-interface) to the client over the network.
Previously, if the user tried to play media such as videos or music over a terminal server connection they experienced a degraded user experience. For instance, video was transferred over from the server to the client very inefficiently as a sequence of bitmaps, which do not compress very well. This resulted in huge bandwidth consumption and very slow playback e.g. a 24 FPS (frames per second) video may play back as a 2 FPS video over a relatively fast network connection, such as digital subscriber line (DSL), if played in the existing terminal services scenario. Another factor which contributed to the degraded user experience is that no provisions are made for synchronizing the audio and the video stream at the client device, resulting in visible problems such as loss of lip-sync in videos involving “talking”. The graphics are traditionally remoted over a remote desktop protocol (RDP). Some existing techniques utilized a minimal audio remoting solution in RDP but did not produce a desired user experience. For example, prior solutions had a set configuration with which streaming had to conform, thereby affecting various performance parameters and system applications.